package minimumRecolors;

public class Solution {
    public int minimumRecolors(String blocks, int k) {
        // 滑动窗口
        // k的长度的滑窗
        int W = 0; // 表示在[i,j]内的白色方块数量
        int B = 0; // 表示在[i,j]内的黑色方块数
        for (int l = 0; l < k; l++) {
            if(blocks.charAt(l) == 'W') {
                W++;
            } else {
                B++;
            }
        }
        int ans = W;
        int i = 1,j = k;
        while (j<blocks.length()) {
            if(blocks.charAt(i-1) == 'W') {
                W--;
            } else {
                B--;
            }
            if(blocks.charAt(j) == 'W') {
                W++;
            } else {
                B++;
            }
            ans = Math.min(ans,W); // 白色方块的数量
            i++;
            j++;
        }
        return ans;
    }
}
